package 微服务.SpringCloud_1.Nacos_3.Nacos配置管理_2.统一配置管理_1;

/**
 * 统一配置管理
 */
public class index {
    /**
     * 在项目cloud-demo项目中，我们如果有一个配置与多个服务有关系<p>
     * 我们就需要一个服务一个服务地去修改，十分麻烦<p>
     * 并且调整完配置之后，这些相关服务都需要重启，在生产环境下，一个服务重启通常会带来大的影响<p>
     * 所以我们现在就需要对这些配置文件进行统一管理，并且改动完配置，这些服务不用重启配置就能立刻生效（<a href="配置更改热更新"></a>）<p></p>
     * <p>
     * 要实现上面的需求，我们就需要一个配置管理的服务<p>
     * 这个服务会记录各个服务中的一些核心配置<p>
     * 然后在服务启动时，就会来读取这个这些核心配置，再与服务各自的配置相结合，作为完整配置使用<p>
     * 将来如果配置需要改动，我们就可以去进行统一的修改<p>
     * 并且当配置修改之后，这个配置管理服务就会去通知相关服务配置修改的信息<p>
     * 然后相关服务就会去再读取服务信息，并且完成配置的热更新<p></p>
     * <p>
     * 由于我们用的是Nacos，所以注册中心和配置管理服务都是由Nacos实现的（当然其实有钱的话也可以弄两套Nacos集群，分别完成两个服务）<p></p>
     * <p>
     * 配置管理用法：<p>
     * 我们可以在Nacos控制台添加配置<p>
     * 配置信息如图”配置信息.png“<p>
     * 需要热更新的配置已经放到了Nacos服务器上了，这时候微服务就需要得到这些配置了<p>
     * 现在的流程是：服务先从Nacos中读取到配置文件，然后再去读取application.yam文件并进行合并<p>
     * 现在就出现了一个问题，要读取Nacos服务器，就需要得到Nacos服务器的地址<p>
     * 而地址信息是写在application.yam文件中的。我们就要想办法在读取application.yam文件之前，就拿到Nacos服务器的地址<p>
     * 有没有一种优先级高于application.yam的配置文件呢？有！<p>
     * springboot中还有一种配置文件：bootstrap.yml（引导文件），它的优先级要高于application.yam<p>
     * 我们就可以把Nacos的地址信息和要读取的配置信息写在这个文件里（事实上，与Nacos地址和配置文件有关的所有信息都应该写在这个文件里）<p></p>
     * <p>
     * 使用方法详见图片“如何读取Nacos中的配置.png”<p>
     *
     * @param args
     */
    public static void main(String[] args) {

    }
}
